package marseillaisdu90.modele;
/**
 * Cette classe construit un objet réflexion qui est utilisé pour retourner des chaines de caractères
 * à afficher dans la boite de dialogue réflexion. Elle permet aussi de savoir si le joueur a répondu correctement
 * à une épreuve de réflexion c'est-à-dire une énigme ou non.
 * @author jose
 *
 */
public class Reflexion extends Epreuve{

	private String question;
	private String reponse;
	private String choix_1;
	private String choix_2;
	private String choix_3;
	protected String choix;
	private int Nbpoint;
	private boolean deja_pose;
	
	/**
	 * Initialise Reflexion avec son numéro son nom , sa question, la réponse , ses choix, sa réponse .
	 * @param numero Numéro de l'énigme.
	 * @param nom	Nom de l'énigme.
	 * @param question	Question posée au joueur.
	 * @param reponse	Réponse du joueur .
	 * @param choix_1	Choix 1.
	 * @param choix_2	Choix 2.
	 * @param choix_3	Choix 3.
	 * @param choix     Choix de l'utilisateur.
	 * @param Nbpoint   Nombre de point que gagne / perd l'aventurier .
	 */
	
	public Reflexion(int numero, String nom, String question, String reponse, String choix_1, String choix_2, String choix_3,String choix,int Nbpoint) {
		super(numero, nom);
		this.question=question;
		this.reponse=reponse;
		this.choix_1=choix_1;
		this.choix_2=choix_2;
		this.choix_3=choix_3;
		this.choix=choix;
		this.Nbpoint=Nbpoint;
		deja_pose=false;
	
	}
	
	/**
	 * Affiche la question.
	 * @return la question sous forme de chaine de caractère.
	 */
	
	public String getQuestion() {
		
		return question;
		
	}
	
	/**
	 * Affiche la réponse.
	 * @return la réponse sous forme de chaine de caractère.
	 */
	
	public String getReponse() {
		
		return reponse;
		
	}
	/**
	 * Affiche le choix 1.
	 * @return le choix 1 sous forme de chaine de caractère.
	 */
	
	public String getChoix_1() {
		
		return choix_1;
		
	}
	/**
	 * Affiche le choix 2.
	 * @return le choix 2 sous forme de chaine de caractère.
	 */
	
	public String getChoix_2() {
		
		return choix_2;
		
	}
	/**
	 * Affiche le choix 3.
	 * @return le choix 3 sous forme de chaine de caractère.
	 */
	
	
	public String getChoix_3() {
		
		return choix_3;
		
	}
	/**
	 * Affiche le nombre de point de moyenne que perd / gagne l'utilisateur
	 * @return Nbpoint .
	 */
	public int getNbpoint(){
		return Nbpoint ;
	}
	
	
	/**
	 * Indique si le joueur a bien répondu.
	 * @return une chaine de caractère.
	 */
	public String estReussi() {
		
		//TODO
		//IHM_FenetreJeu.nbEnigmefaite++;
		
		if(choix.equals(reponse)){
			Joueur.augmenterMoy(getNbpoint());
			return "Bravo \n Ta moyenne augmente de "+getNbpoint()+ " point";
			
			
		}else{
			
			Joueur.diminuerMoy(2);
			return "Et non ! la réponse était : "+getReponse()+"\n Ta moyenne diminue de 2 points";
//		
		}
	}

	/**
	 * Méthode permettant de modifier la variable choix .
	 * @param Choix choix que le joueur a fait dans la boite de dialogue.
	 */
	public void setChoix(String Choix) {
		this.choix=Choix;
		
	}
	/**
	 * lorsqu'on a posé une énigme on fait appel à cette méthode
	 * qui met la variable deja_pose a true
	 */
	public void pose() {
	
		deja_pose=true;
		
	}
	/**
	 * Méthode permettant de savoir si on a déjà posé l'énigme.
	 * @return deja_pose  (un booleen)
	 */
	public boolean dejaPose() {
	
		return deja_pose;
		
	}
}